package persistence;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import model.Arbitro;
import persistence.connection.PoolConnection;

public class ArbitroPersistsAdm {

private static ArbitroPersistsAdm arbitroPersistsAdm;
	
	private ArbitroPersistsAdm(){}
	
	public static ArbitroPersistsAdm getInstance(){
		
		if (arbitroPersistsAdm == null)
			arbitroPersistsAdm = new ArbitroPersistsAdm();
		
		return arbitroPersistsAdm;
	}
	
	public ArrayList<Arbitro> select(){		
		Connection con = PoolConnection.getPoolConnection().getConnection();
		String sentencia = "select * from dbLiforBasquet.dbo.Arbitros";
		ArrayList<Arbitro> arbitros = new ArrayList<Arbitro>();
		
		try {			
			PreparedStatement ps = con.prepareStatement(sentencia);
			ResultSet rs = ps.executeQuery();
			
			while (rs.next()){
				Arbitro arbitro = new Arbitro();
				
				arbitro.setId(rs.getInt("id"));
				arbitro.setNombre(rs.getString("nombre"));
				arbitro.setApellido(rs.getString("apellido"));
				arbitro.setDni(rs.getString("dni"));
				arbitro.setTelefono(rs.getString("telefono"));
				arbitro.setEstado(rs.getString("estado"));
				
				java.sql.Date fechaAlta = rs.getDate("fechaAlta");
				java.sql.Date fechaRegistro = rs.getDate("fechaRegistro");
				
				arbitro.setFechaAlta( new java.util.Date(fechaAlta.getTime()));
				arbitro.setFechaRegistro(new java.util.Date(fechaRegistro.getTime()));
			
				//faltas asignaciones
				
				arbitros.add(arbitro);
			}		
		} catch (Exception e) {		
			System.out.println("Error al obtener arbitros: " + e.getMessage());
		}	
		
		PoolConnection.getPoolConnection().realeaseConnection(con);
		return arbitros;
	}
}
